PEFT
Safetensors
English

Model Card: j1-nano from Haize Labs

j1-nano from Haize Labs is a dimunitive (0.6B) but mighty reward model. It is trained on Skywork Reward Preference 80K v0.2 by scaling judge-time compute. Uniquely, j1-nano proposes item-level evaluation criteria and reasoning before arriving at a final evaluation score.

j1-nano is surprisingly cogent, especially given its small number of parameters.

j1-nano is competitive on RewardBench vis-à-vis much larger models including GPT-3.5-turbo-0125, ContextualAI/archangel_sft-dpo_llama30b, allenai/tulu-v2.5-13b-uf-rm, etc.

Model Details

  • Base Model: j1-nano is a LoRA SPCT-finetune off of Qwen/Qwen3-0.6B
  • Github: https://github.com/haizelabs/j1-micro
  • Performance: by far the smallest model to achieve >60% accuracy on RewardBench
  • Development Time: 1 Day
  • Development Resources: 1 A100 80GB GPU
  • Developer: Haize Labs Inc.

Results

Model RewardBench Score
Tulu-2-70b 77.20%
Claude-3-Opus-20240229 80.10%
GPT-4o-mini-2024-07-18 80.10%
Llama-3-70B-Instruct 77.00%
Qwen3-1.7B 29.51%
Qwen3-1.7B (Soft Match) 69.38%
j1-micro 80.70%

Table 1: RewardBench scores for j1-micro (1.7B). j1-micro is competitive with models several orders of magnitude larger.


Model RewardBench Score
allenai/tulu-v2.5-13b-uf-rm 46.1%
ContextualAI/archangel_sft-dpo_llama30b 56.10%
Qwen/Qwen1.5-4B-Chat 56.00%
GPT-3.5-turbo-0125 65.30%
Qwen3-0.6B 0%
Qwen3-0.6B (Soft Match) 0%
j1-nano 62.35%

Table 2: RewardBench scores for j1-nano (0.6B). To our knowledge, j1-nano is by far the smallest model to achieve >60% accuracy on RewardBench.

Using j1-nano

First, spin up a local vLLM server:

vllm serve Qwen/Qwen3-0.6B --enable-lora --lora-modules j1-nano=[path-to-snapshot]

Run the test script provided in the repository:

python test_j1.py --model-name j1-nano

The test script uses the following prompts:

judge_system_prompt = """
    You are an expert XML wrangler. You must respond in the following format, regardless of the input:
    
    <specific_criteria>
    ...
    </specific_criteria>
    <analysis>
    ...
    </analysis>
    <scores>
    \\boxed{{..., ...}}
    </scores>

    Please only respond in English.
    """

judge_prompt_template = """
    You are a skilled little expert at scoring responses. You should evaluate given responses based on the given judging criteria.
    Given the context of the conversation (the last round is the User's query) and multiple responses from the Assistant, you need to refer to the [General Evaluation Criteria] to score the responses. Based on the general evaluation criteria, state potential other specific criteria to the query, the weights of different criteria, and then provide an overall comprehensive score upon them.
    Each score is an integer between 1 and 10, with a higher score indicating that the response meets the relevant criteria more closely. For example, a score of 1 means the response does not meet the criteria at all, a score of 6 means the response meets only some parts, and a score of 10 means the response perfectly meets the evaluation criteria.
    Before scoring, please analyze step by step. Your scoring needs to be as strict as possible.

    #### Evaluation Criteria ####
    1. Instruction Adherence:
    - Fully Adhered (9-10 points): The response fully complies with all instructions and requirements of the question.
    - Partially Adhered (6-8 points): The response meets most of the instructions but has some omissions or misunderstandings.
    - Basically Adhered (3-5 points): The response meets some instructions, but the main requirements are not fulfilled.
    - Not Adhered (1-2 points): The response does not meet any instructions.
    Example: If the question requires three examples and the response provides only one, it falls under "Partially Adhered."
    2. Usefulness:
    - Highly Useful (9-10 points): The response provides comprehensive and accurate information, fully addressing the issue.
    - Useful but Incomplete (6-8 points): The response provides some useful information, but lacks details or accuracy.
    - Limited Usefulness (3-5 points): The response offers little useful information, with most content being irrelevant or incorrect.
    - Useless or Incorrect (1-2 points): The response is completely irrelevant or incorrect.
    Example: If there are factual errors in the response but the overall direction is correct, it falls under "Useful but Incomplete."
    3. Level of Detail:
    - Very Detailed (9-10 points): The response includes ample details covering all aspects of the issue.
    - Detailed but Slightly Lacking (6-8 points): The response is fairly detailed but misses some important details.
    - Basically Detailed (3-5 points): The response provides some details but is not thorough enough overall.
    - Not Detailed (1-2 points): The response is very brief and lacks necessary details.
    Example: If the response provides only a simple conclusion without an explanation, it falls under "Not Detailed."
    4. Relevance:
    - Highly Relevant (9-10 points): The response is highly relevant to the question, with information closely aligned with the topic.
    - Generally Relevant (6-8 points): The response is generally relevant but includes some unnecessary information.
    - Partially Relevant (3-5 points): The response has a lot of content that deviates from the topic.
    - Not Relevant (1-2 points): The response is completely irrelevant.
    Example: If the response strays from the topic but still provides some relevant information, it falls under "Partially Relevant."

    #### Conversation Context ####
    {conversation_context_query}
    #### Responses to be Scored ####
    [The Begin of Response A]
    {response_a}
    [The End of Response A]
    [The Begin of Response B]
    {response_b}
    [The End of Response B]
    #### Output Format Requirements ####

    Output with three lines
    <specific_criteria>
    [Other potential criteria specific to the query and the context, and the weights of each criteria.]
    </specific_criteria>
    <analysis>
    [Compare different responses based on given Criteria.]
    </analysis>
    <scores>
    [The overall comprehensive score of all responses in order, separate by comma in the boxed, e.g., \\boxed{{x, x}} if there exists 2 responses.]
    </scores>
    """

j1-micro outputs specific_criteria unique to the (pairwise) data being evaluated, analysis of the data with respect to specific_criteria, and finally a pair of scores in \boxed{x,y} ultimately indicating response preference.

Citation

@misc{j1micro2025,
    title = {j1-micro and j1-nano: Tiny Generalist Reward Models via Inference-Time Rubric Proposal},
    author = {Haize Labs},
    url = {https://github.com/haizelabs/j1-micro},
    month = {May},
    year = {2025}
}

Model Card Contact

leonardtang.me

Downloads last month
44
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for haizelabs/j1-nano-0.6B

Finetuned
Qwen/Qwen3-0.6B
Adapter
(13)
this model

Datasets used to train haizelabs/j1-nano-0.6B